//package com.etrans.web.gps.business.base.controller;
//
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.servlet.ModelAndView;
//
//import com.alibaba.fastjson.JSON;
//import com.etrans.web.gps.base.controller.BaseController;
//import com.etrans.web.gps.business.base.domain.CertificateType;
//import com.etrans.web.gps.business.base.domain.Driver;
//import com.etrans.web.gps.business.base.domain.DriverType;
//import com.etrans.web.gps.business.base.service.DriverService;
//import com.etrans.web.gps.common.page.PageResultVo;
//import com.etrans.web.gps.common.page.PageVo;
//import com.etrans.web.gps.common.page.ResultContans;
//import com.etrans.web.gps.util.grid.FlexiGridUtil;
//import com.etrans.web.gps.util.grid.ParamMap;
//import com.etrans.web.gps.util.grid.ParamValueObject;
//
//
///**
// * 司机信息Controller层
// * @author liurong
// *
// */
//@Controller
//@RequestMapping(value="/base/driver/*")
//public class DriverController extends BaseController {
//	
//	private final static Logger logger = LoggerFactory.getLogger("DriverController");
//	
//	@Autowired
//	private DriverService driverService;
//	
//	/**
//	 * 页面跳转入口
//	 * @return
//	 */
//	@RequestMapping(value="loadDriver.html")
//	public ModelAndView loadDriver(){
//		ModelAndView view = new ModelAndView();
//		view.setViewName("views/base/driver/queryDriver");
//		return view;
//		
//	}
//	
//	/**
//	 * 提供给其他信息添加时的下拉列表司机信息数据加载
//	 * 查询司机信息树
//	 * @param response
//	 * @param WorkUnitID
//	 * @return
//	 */
//	@RequestMapping(value = "loadAllDriverTrees.html")
//	@ResponseBody
//	public PageResultVo loadAllDriverTrees(HttpServletResponse response,String WorkUnitID) {
//		List<Driver> rows=null;
//		PageResultVo pageResultVo = new PageResultVo();
//		try {
//			HashMap<String, Object> mapParams=new HashMap<String, Object>();
//			mapParams.put("WorkUnitID", WorkUnitID);
//		    rows = driverService.loadAllDriverTrees(mapParams);
//		    pageResultVo.setCode(ResultContans.RETURN_OK_CODE.getCode());
//		    pageResultVo.setData(rows);
//		} catch (Exception e) {
//			logger.error("", e);
//			pageResultVo.setCode(ResultContans.RETURN_ERROR_CODE.getCode());
//			pageResultVo.setData(null);
//		}
//
//		return pageResultVo;
//	}
//	
//	/**
//	 * @return
//	 */
//	@RequestMapping(value = "initDriver.html")
//	public ModelAndView initDriver(@RequestParam String dbKey) {
//		ModelAndView mav = new ModelAndView();
//		mav.addObject("action", "insert");
//		mav.addObject("choose", dbKey);
//		mav.addObject("addDriver", new Driver());
//		mav.setViewName("views/base/driver/addDriverForm");
//		return mav;
//	}
//	
//	/**
//	 * 查询司机信息
//	 * @param paramsGrid   查询条件
//	 * @return
//	 */
//	@RequestMapping(value = "loadAllDrivers.html")
//	@ResponseBody
//	public PageVo loadAllDrivers(@RequestParam String dbKey, String paramsGrid) {
//		Map<String, Object> param = FlexiGridUtil.parseJSONParam(paramsGrid).getWhereParam();
//		PageVo pageVo = new PageVo();
//		//Map<String, Object> paramMap = FlexiGridUtil.parseJSONParam(paramsGrid).getWhereParam();
//		//添加企业数据权限查询
//		//paramMap.putAll(getUnitlevelParam(request));
//		List rows = driverService.queryAllDrivers(param);
//		pageVo.setRows(rows);
//		pageVo.setPage(1);
//		pageVo.setTotal(driverService.driverCount(param));
//		return pageVo;
//	}
//	
//	
//	/**
//	 * 删除司机信息(司机信息的所有删除操作都执行此方法、单一删除与批量删除)
//	 * @param DriverIds 车辆ID字符串
//	 */
//	@RequestMapping(value = "delDriver.html")
//	@ResponseBody
//	public PageResultVo delDriver(@RequestParam String dbKey,String DriverIds) {
//		PageResultVo pageResultVo = new PageResultVo();
//		try {
//			if (DriverIds != null && !"".equals(DriverIds)) {
//				String[] ArrayvehicleId = DriverIds.split(",");
//				for (String perID : ArrayvehicleId) {
//					driverService.deleteDriverByID(Integer.parseInt(perID));
//					pageResultVo.setCode(ResultContans.RETURN_OK_CODE.getCode());
//					pageResultVo.setMsg("删除成功");
//				}
//			}
//		} catch (Exception e) {
//			logger.error("", e);
//			pageResultVo.setCode(ResultContans.RETURN_ERROR_CODE.getCode());
//			pageResultVo.setMsg("删除失败");
//		}
//
//		return pageResultVo;
//	}
//	
//	
//	/**
//	 * 导出司机信息
//	 * @param response     
//	 * @param paramsGrid   前端页面参数
//	 * @param StartPage    开始页
//	 * @param EndPage      结束页
//	 */
//	@RequestMapping(value = "exportDrivers.html")
//	public void exportDrivers(HttpServletResponse response,HttpServletRequest request, String paramsGrid,Integer StartPage,Integer EndPage,@RequestParam String dbKey) {
//		ParamMap param = FlexiGridUtil.parseJSONParam(paramsGrid);
//		ParamValueObject inputParam = this.parseJSONParamExport(param,StartPage,EndPage);
//		
//		String[] titleArray = new String[16];
//		titleArray[0]="企业名称";
//		titleArray[1]="司机名称";
//		titleArray[2]="联系电话";
//		titleArray[3]="驾驶证号";
//		titleArray[4]="IC卡号";
//		titleArray[5]="身份证号";
//		titleArray[6]="司机工号";
//		titleArray[7]="司机编码";
//		titleArray[8]="驾驶证有效期(月)";
//		titleArray[9]="驾驶证年审日期";
//		titleArray[10]="准入证号";
//		titleArray[11]="准入证有效期(月)";
//		titleArray[12]="准入证审验日期";
//		titleArray[13]="资格证到期日期";
//		titleArray[14]="从业资格证号";
//		titleArray[15]="发证机构名称";
//		
//		String[] columnArray = new String[16];
//		columnArray[0]="WorkUnitName";
//		columnArray[1]="Name";
//		columnArray[2]="PhoneNO";
//		columnArray[3]="DrivingLicence";
//		columnArray[4]="WorkLicenceNO";
//		columnArray[5]="IdentityCard";
//		columnArray[6]="DriverNO";
//		columnArray[7]="DriverCode";
//		columnArray[8]="LicenseNoEffective";
//		columnArray[9]="YearCheckTime";
//		columnArray[10]="AdmittanceCertificate";
//		columnArray[11]="AdmittanceEffective";
//		columnArray[12]="AdmittanceCheckDate";
//		columnArray[13]="WorkCertificateExpiryDate";
//		columnArray[14]="WorkCertificate";
//		columnArray[15]="organization";
//		HashMap<String, Object> paramMap=inputParam.getMapParams();
//		//添加企业数据权限查询
//		List rows = driverService.queryAllDrivers(paramMap);
//		//exportExl(request,response,"司机信息统计", titleArray, columnArray, rows);
//	}
//	
//	
//	/**
//	 * 添加车辆信息时调用此方法
//	 * @param response
//	 * @param UnitID
//	 * @param DriverName
//	 * @param Identitycard
//	 * @param Workcertificate
//	 * @param request
//	 * @return
//	 */
//	@RequestMapping(value = "saveDriverSimple.html")
//	@ResponseBody
//	public PageResultVo saveDriverSimple(HttpServletRequest request,HttpServletResponse response,Integer UnitID,String DriverName,
//			String Identitycard, String Workcertificate,@RequestParam String dbKey) {
//		PageResultVo pageResultVo = new PageResultVo();
//		try {
//			Driver driver = new Driver();
//			driver.setWorkunitid(UnitID);
//			driver.setName(DriverName);
//			driver.setIdentitycard(Identitycard);
//			driver.setWorkcertificate(Workcertificate);
//			driverService.saveDriver(driver);
//			pageResultVo.setCode(ResultContans.RETURN_OK_CODE.getCode());
//		} catch (Exception e) {
//			logger.error("", e);
//			pageResultVo.setCode(ResultContans.RETURN_OK_CODE.getCode());
//			pageResultVo.setMsg("保存失败!");
//		}
//		return pageResultVo;
//	}
//	
//	/**
//	 * 保存司机信息,新增、修改操作都执行这个方法,根据action进行判别
//	 * @param action 执行操作的标识(insert,update)
//	 * @param driver 司机信息(参数传递对象)
//	 * @return
//	 */
//	@RequestMapping(value = "saveDriver.html")
//	@ResponseBody
//	public PageResultVo saveDriver(@RequestParam String dbKey,String action, Driver driver) {
//		PageResultVo pageResultVo = new PageResultVo();
//		try {
//			SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//			if ("insert".equals(action)) {
//			
//				//直接保存
//				driverService.saveDriver(driver);
//			}
//
//			if ("update".equals(action)) {
//				driverService.updateDriver(driver);
//			}
//			
//			//更新司机实时缓存
//		
//			pageResultVo.setCode(ResultContans.RETURN_OK_CODE.getCode());
//		} catch (Exception e) {
//			logger.error("", e);
//			pageResultVo.setCode(ResultContans.RETURN_ERROR_CODE.getCode());
//			pageResultVo.setMsg("保存失败!");
//		}
//		return pageResultVo;
//	}
//	
//	/**
//	 * 修改司机信息
//	 * @param driverId
//	 * @return
//	 */
//	@RequestMapping(value = "updateDriver.html")
//	@ResponseBody
//	public ModelAndView updateDriver(@RequestParam Integer driverId,@RequestParam String dbKey) {
//		ModelAndView mav = new ModelAndView();
//		try {
//			//查找相应的司机
//			Driver driver = driverService.queryDriverById(driverId);
//			driver.setId(driverId);
//			mav.addObject("action", "update");
//			mav.addObject("driver", driver);
//			mav.addObject("choose", dbKey);
//			mav.setViewName("views/base/driver/addDriverForm");
//		} catch (Exception e) {
//			logger.error("", e);
//		}
//
//		return mav;
//	}
//	
//	
//	// 查询所有司机类型信息
//	@RequestMapping(value = "loadAllDriverTypes.html")
//	@ResponseBody
//	public List<DriverType> loadAllDriverTypes(@RequestParam String dbKey) {
//		List<DriverType> driverList = driverService.queryAllDriverTypes(dbKey);
//		return driverList;
//		
//	}
//	
//	// 查询所有从业资格证类别
//	@RequestMapping(value = "loadAllCertificateTypes.html")
//	@ResponseBody
//	public List<CertificateType> loadAllCertificateTypes(@RequestParam String dbKey) {
//		List<CertificateType> certificateList = driverService.queryAllCertificateTypes(dbKey);
//		return certificateList;
//	}
//	
//	/**
//	 * 导出报表
//	 * @param response
//	 * @param request
//	 * @param paramsGrid 前端json格式的参数
//	 * @param colModel 表头
//	 * @param title 标题
//	 * @param imgsrc 图片url,如果为null则不加载图片页
//	 */
//	@RequestMapping(value="exportDriver.html")
//	@ResponseBody
//	public void exportDriver(HttpServletResponse response,HttpServletRequest request, String paramsGrid, String colModel,
//			String title,String imgsrc, @RequestParam String dbKey){
//		
//		Map<String, Object> paramMap=getReqParameters();
//		List<String> colModelList = JSON.parseObject(colModel, List.class);
//		
//		
//		
//		List result =driverService.queryAllDrivers(paramMap);
//		
//		List<HashMap<String, String>> rows = new ArrayList<HashMap<String, String>>();
//		for(int i=0;i<result.size();i++){
//			HashMap<String, String> map = new HashMap<String, String>();
//			Map<String, Object>  obj=(Map<String, Object>)result.get(i);
//			map.put("WorkUnitName",String.valueOf(obj.get("WorkUnitName")));
//			map.put("Name",String.valueOf(obj.get("Name")));
//			map.put("PhoneNO",String.valueOf(obj.get("PhoneNO")));
//			map.put("DrivingLicence",String.valueOf(obj.get("DrivingLicence")));
//			map.put("WorkLicenceNO",String.valueOf(obj.get("WorkLicenceNO")));
//			map.put("IdentityCard",String.valueOf(obj.get("IdentityCard")));
//			map.put("DriverNO",String.valueOf(obj.get("DriverNO")));
//			map.put("DriverCode",String.valueOf(obj.get("DriverCode")));
//			map.put("LicenseNoEffective",obj.get("LicenseNoEffective") == null ? "" : String.valueOf(obj.get("LicenseNoEffective")));
//			map.put("YearCheckTime",obj.get("YearCheckTime") == null ? "" :String.valueOf(obj.get("YearCheckTime")));
//			map.put("AdmittanceCertificate",String.valueOf(obj.get("AdmittanceCertificate")));
//			map.put("AdmittanceEffective",obj.get("AdmittanceEffective") == null ? "" : String.valueOf(obj.get("AdmittanceEffective")));
//			map.put("AdmittanceCheckDate",obj.get("AdmittanceCheckDate")== null ? "" : String.valueOf(obj.get("AdmittanceCheckDate")));
//			map.put("WorkCertificateExpiryDate", obj.get("WorkCertificateExpiryDate") == null ? "" :String.valueOf(obj.get("WorkCertificateExpiryDate")));
//			map.put("WorkCertificate",String.valueOf(obj.get("WorkCertificate")));
//			map.put("organization", String.valueOf(obj.get("organization")));
//			rows.add(map);
//		}
//		
//		int index=-1;
//		List rowsList = new ArrayList<>();
//		rowsList.add(rows);
//		exportExl(request, response,title, removeHeadName(colModelList,index,-1),rowsList,null);
//	}
//	
//}
